#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<list>
#include<string>
#include<vector>

using namespace std;

#include"list.h"
#include"vector.h"
#include"reverse_iterator.h"


//void func(const pxt::list<int>& lt)
//{
//	pxt::list<int>::const_reverse_iterator rit = lt.rbegin();
//	while (rit != lt.rend())
//	{
//		cout << *rit << ' ';
//		++rit;
//	}
//	cout << endl;
//}
//
//int main()
//{
//	pxt::list<int> lt;
//
//	lt.push_back(1);
//	lt.push_back(2);
//	lt.push_back(3);
//	lt.push_back(4);
//	lt.push_back(5);
//
//	pxt::list<int>::iterator it = lt.begin();
//	while (it != lt.end())
//	{
//		cout << *it << ' ';
//		++it;
//	}
//	cout << endl;
//
//	pxt::list<int>::reverse_iterator rit = lt.rbegin();
//	while (rit != lt.rend())
//	{
//		cout << *rit << ' ';
//		++rit;
//	}
//	cout << endl;
//
//	func(lt);
//
//	return 0;
//}


void func(const pxt::vector<int>& v)
{
	pxt::vector<int>::const_reverse_iterator rit = v.rbegin();
	while (rit != v.rend())
	{
		cout << *rit << ' ';
		++rit;
	}
	cout << endl;
}

int main()
{
	pxt::vector<int> v;

	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);
	v.push_back(5);

	pxt::vector<int>::iterator it = v.begin();
	while (it != v.end())
	{
		cout << *it << ' ';
		++it;
	}
	cout << endl;

	pxt::vector<int>::reverse_iterator rit = v.rbegin();
	while (rit != v.end())
	{
		cout << *rit << ' ';
		++rit;
	}
	cout << endl;

	func(v);

	return 0;
}